/*
 * CVideoDecoder.h
 *
 *  Created on: 2018年5月21日
 *      Author: zhengboyuan
 */

#ifndef CVIDEODECODER_H_
#define CVIDEODECODER_H_

#include "MediaDecoder.h"

namespace av
{

class CVideoDecoder: public MediaDecoder
{
public:
	CVideoDecoder();
	virtual ~CVideoDecoder();

    virtual int open(const MediaFormat& fmt);

    virtual void close();

    virtual bool isOpen();

    virtual bool decode(AVPacketPtr& pkt, AVFramePtr& frame);

    virtual void flush();

protected:
    AVFramePtr decode(AVPacketPtr& pkt);

protected:
    AVCodecContext*		m_codecCtx;
};


} /* namespace av */

#endif /* CVIDEODECODER_H_ */
